/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prjtgl.controler.recruteur;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.bind.BindUtils;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Button;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import prjtgl.bdd.comptes.HRecruteur;
import prjtgl.bdd.paiement.HPorteMonnaie;
import prjtgl.metier.Application;
import prjtgl.metier.comptes.Recruteur;
import prjtgl.metier.comptes.profil_societe.Societe;
import prjtgl.metier.paiement.Paiement;
import prjtgl.metier.paiement.PorteMonnaie;
import prjtgl.util.SessionUtilisateur;

/**
 *
 * @author Adrien
 */
public class Inscription extends SelectorComposer<Window> {
    
    @Wire
    Button retrieve;
    
    @Wire
    Textbox email,name,mdp_1,mdp_2,description;
    
    @Listen("onClick=#retrieve")
    public void creerRecruteur(){
         Application ap = Application.getInstance();
        
        
        if(ap.rechercherUtilisateur(email.getValue())==null ){
            Societe societe = ap.rechercherSociete(name.getValue());
            if(societe==null){
               ap.ajouterSociete(name.getValue());
            }           
            
            ap.creerRecruteur(email.getValue(), mdp_1.getValue(), name.getValue());
            Recruteur recruteur = (Recruteur) ap.rechercherUtilisateur(email.getValue());
            
                
                PorteMonnaie portemonnaie = new PorteMonnaie();
                portemonnaie.setPaiements(new ArrayList<Paiement>());
                portemonnaie.setCredit(0);
		portemonnaie.setId(recruteur.getId());
                portemonnaie.updatePorteMonnaie();
             
                recruteur.setPorteMonnaie(portemonnaie);
                recruteur.setDescription(description.getValue());
                Application.getInstance().updateRecruteur(recruteur);
              
            
            
            showNotify("Création réussie", retrieve);
            
              Map<String, Object> args = new HashMap();

           args.put("content", "connexion.zul");
           BindUtils.postGlobalCommand(null, null, "changePage", args);
            
            
       }else{
            showNotify("Adresse e-mail déjà utilisée !", retrieve);
        }
        // TODO faire verfication
        // TODO creer Recruteur
    }
    
    
    private void showNotify(String msg, Component ref)
    {
        Clients.showNotification(msg, "info", ref, "end_center", 4000);
    }
}
